package com.gin.no_gay_alliance.utils;

import android.content.Context;
import android.os.Handler;
import android.view.View;
import android.view.inputmethod.InputMethodManager;

import com.gin.no_gay_alliance.app.MyApplication;

/**
 * 输入法管理器工具类
 *
 * @author : ginstone
 * @version : v1.0.0
 * @since : 2023/8/4 17:10
 **/
public class InputMethodManagerUtils {
    /**
     * 获取输入法管理器
     *
     * @return 输入法管理器
     */
    public static InputMethodManager getInputMethodManager() {
        return (InputMethodManager) MyApplication.app.getSystemService(Context.INPUT_METHOD_SERVICE);
    }

    /**
     * 激活输入法
     *
     * @param view 需要激活的view
     */
    public static void show(View view) {
        InputMethodManager manager = getInputMethodManager();
        manager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
    }

    /**
     * 使用handler延时激活输入法
     *
     * @param handler handler
     * @param view    需要激活的view
     */
    public static void show(Handler handler, View view) {
        handler.postDelayed(() -> show(view), 300);
    }

    /**
     * 关闭输入法
     *
     * @param view 之前激活输入法的view
     */
    public static void hide(View view) {
        InputMethodManager manager = getInputMethodManager();
        manager.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }
}
